package com.agrishare.service;

import com.agrishare.entity.PointRecord;
import com.agrishare.entity.PointType;
import com.agrishare.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface PointService {
    
    void addPoints(User user, PointType type, String description, Long relatedId);
    
    void addRegisterPoints(User user);
    
    void addPostPoints(User user, Long postId);
    
    void addCommentPoints(User user, Long commentId);
    
    void addLikePoints(User user, Long relatedId, PointType type);
    
    void addEssencePoints(User user, Long postId);
    
    void addExpertAnswerPoints(User user, Long postId);
    
    Page<PointRecord> getUserPointRecords(User user, Pageable pageable);
    
    Integer getUserTotalPoints(User user);
}